Date: Tue, 10 Dec 1996 16:47:22 GMT
Server: NCSA/1.4.2
Content-type: text/html

<HTML>
<HEAD>
<TITLE>Assignment 2 - Design Specifications</TITLE>
<!-- Created by: Adam Carlson, 22-Apr-1996 -->
<!-- Changed by: Adam Carlson,  2-May-1996 -->
<BASE HREF="http://www.cs.washington.edu/education/courses/cse403/96sp/">

</HEAD>
<BODY>
<H1>Assignment 2 - Design Specifications</H1>

<H2>What to do</H2>

In this assignment, you will produce two design specifications for a program
that formats HTML documents to ASCII using a subset of the HTML specification.
One of the design specifications will use the object-oriented design
methodology, and the other one can be any of the other methodologies that have
been covered in class.  The <!WA0><A HREF="http://www.cs.washington.edu/education/courses/cse403/96sp/specification.html">requirements
specification</A> explains what parts of the full <!WA1><A
HREF="http://www.w3.org/pub/WWW/MarkUp/html-spec/html-spec_toc.html">HTML
specification</A> you will need to design for.

<H2>What to hand in</H2>

Each <!WA2><A HREF="http://www.cs.washington.edu/education/courses/cse403/96sp/assign2-groups.txt">group</A> will be required to hand in two
designs.  Each design should be about two pages long.  The design
specifications should include justifications for major design decisions.  The
object oriented design should include the classes you will implement, how they
interact and what each is responsible for.  The other design can be
functional, top-down, bottom-up, data-flow, control-flow or any other design
types that were described in class.  It should include a chart describing the
decomposition (any of the notations described in class will do), a description
of the major data structures and a textual description of the modules and
their interfaces.  In summary, each design should include a structural
breakdown of the problem (into classes, modules, functions or whatever), an
english description of the major structural units and a description of the
data structures. <P>
  There is no "right" answer, but you will need to justify your choices.
Justifications can include reduced coupling and increased cohesion.  Finally,
the purpose of assigning two types of designs is to give you experience with
different strategies, not to show that you can draw the same design as a class
hierarchy and a data-flow.  Different methodologies highlight different
aspects of the problem, you should try to pick a methodology that works well
for this problem, and let it lead you where it will.  You will not be graded
down if your object-oriented design looks a lot like the other one, but you
will have missed a learning experience if you just do one design and show it
two ways.

<H2>Due Date:</H2>

May 3, 1996

<HR>

<ADDRESS> <!WA3><A Name=Signature HREF=""http://www.cs.washington.edu/education/courses/cse403/96sp/>Adam Carlson</A></ADDRESS>
</BODY>
</HTML>
